---
title: TIFF to multi-page PDF
summary: Draw one PDF page per frame of a multi-frame TIFF image.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-17
library: PdfAPI.SyncFusionCore
reference_type: package
operation_id: OP-SFC-008
trigger: Called by ConverterFactory for tif/tiff extensions
---

# TIFF to multi-page PDF

Converts a TIFF image stream — potentially containing multiple frames — into a multi-page PDF, emitting one page per frame in frame order.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-SFC-008 |
| **Trigger** | Called by [Execute a single conversion (converter template)](execute-single-conversion.md) via `TiffConverter.ConvertItem`, dispatched from [Convert a source document to PDF](convert-source-document-to-pdf.md) for `tif`/`tiff` |
| **Inputs** | Source `Stream`, `ConvertRequest` |
| **Outputs** | PDF `byte[]` |
| **Primary components** | `TiffConverter.ConvertItem` |
| **Entry point** | `PdfApi.SyncFusionCore\Convert\TiffConverter.cs` |

## Steps

1. Choose conformance (`Pdf_A1B` / `None`) and create the `PdfDocument` ([BR-SFC-011](../business-rules.md#br-sfc-011-pdf%2Fa-conformance-level-a1b)).
2. Set `doc.PageSettings.Margins.All = 0` ([BR-SFC-018](../business-rules.md#br-sfc-018-tiff-pages-have-zero-margins)).
3. Load the stream as a `PdfBitmap` and read `FrameCount`.
4. For each frame index `0..FrameCount-1`: add a page, select the frame via `ActiveFrame`, and draw
   it to the full page client size ([BR-SFC-019](../business-rules.md#br-sfc-019-one-pdf-page-per-tiff-frame), [BR-SFC-017](../business-rules.md#br-sfc-017-image-and-frame-stretched-to-full-page)).
5. Write a percentage-complete line to `System.Diagnostics.Debug` for each frame — a debug-only
   progress trace, not application logging.
6. Save to a `MemoryStream`, close the document, and return the bytes.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start(["ConvertItem called<br>with stream, request"]) --> Conf["Choose conformance,<br>create PdfDocument"]
	Conf --> Margins[Set page margins to 0]
	Margins --> LoadBmp["Load stream as PdfBitmap,<br>read FrameCount"]
	LoadBmp --> Loop{"More frames<br>remaining?"}
	Loop -->|Yes| AddPage["Add page, select<br>ActiveFrame, draw to<br>full page size"]
	AddPage --> Debug[Write debug progress trace]
	Debug --> Loop
	Loop -->|No| Save["Save to MemoryStream,<br>close document"]
	Save --> Return([Return PDF bytes])
```

## Failure and edge-case behavior

- Any Syncfusion conversion failure surfaces as an exception, which is caught by
  [Execute a single conversion (converter template)](execute-single-conversion.md) and turned into a failed `PdfResult` rather than propagated here.
- A large or many-frame TIFF is processed to completion with no page-count ceiling or timeout in
  this library.*

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `PdfApi.SyncFusionCore\Convert\TiffConverter.cs`
